/*
 * @Description: 队列的 代码实现
 * @Autor: Blueheart
 * @Date: 2021-03-14 18:21:26
 * @LastEditTime: 2021-03-14 20:48:54
 * @FilePath: \js-data-structures-and-algorithms\DataStructures_js\Queue\Queue.js
 */
// 队列结构的封装
export default class Queue {

    constructor() {
      this.items = [];
    }
  
    // enqueue(item) 入队，将元素加入到队列中
    enqueue(item) {
      this.items.push(item);
    }
  
    // dequeue() 出队，从队列中删除队头元素，返回删除的那个元素
    dequeue() {
      return this.items.shift();
    }
  
    // front() 查看队列的队头元素
    front() {
      return this.items[0];
    }
  
    // isEmpty() 查看队列是否为空
    isEmpty() {
      return this.items.length === 0;
    }
  
    // size() 查看队列中元素的个数
    size() {
      return this.items.length;
    }
  
    // toString() 将队列中的元素以字符串形式返回
    toString() {
      let result = '';
      for (let item of this.items) {
        result += item + ' ';
      }
      return result;
    }
  }
  